
//package com.x52im.rainbowchat.logic.chat_root.utils;
//
//import android.app.Activity;
//import android.content.Context;
//import android.graphics.Bitmap;
//
//import MyApplication;
//import com.x52im.rainbowchat.http.logic.dto.RosterElementEntity;
//import com.x52im.rainbowchat.logic.more.avatar.ShowUserAvatar;
//
///**
// * 聊天时本地头像、好友头像获取的包装实现类.
// * <p>
// * 之所以有本类的存在，是为了在像聊天界面这样只有2个头像存在但在界面之内重复
// * 大量使用的情况下能共享Bitmap对象（理论上该界面中只有可能有2个Bitmap存在于内存中）
// * ，且提供方便刷新和释放内存的方法.
// *
// * @author Jack Jiang(http://www.52im.net/space-uid-1.html)
// * @version 1.0
// */
//public class AvatarGetWrapper
//{
//	private Context context = null;
//
//	protected Bitmap localAvatarBitmap = null;
//	protected Bitmap friendAvatarBitmap = null;
//	protected String friendUIDForInit = null;
//
//	public AvatarGetWrapper(Context context, String friendUIDForInit)
//	{
//		this.context = context;
//		//
//		this.friendUIDForInit = friendUIDForInit;
//	}
//
//	public void refreshAvatar(boolean needTryGerAvatarFromServer)
//	{
//		RosterElementEntity localRee = MyApplication.getInstance(context)
//				.getIMClientManager().getLocalUserInfo();
//		// google分析报告过一次本对象为null的情况导致的空指针，但此对象不应为null才对，因为程序会首先报证本对象不为
//		// null，否则是不会登陆成功的。估计还是APP的生命周期有问题导致Application里的值被清空？或者它就是2个实例？
//		if(localRee != null)
//			// 读取本地用户头像
//			tryToGetAvatar(true, localRee.getUser_uid(), needTryGerAvatarFromServer);
//
//		// 读取好友头像
//		if(friendUIDForInit != null)
//			tryToGetAvatar(false, friendUIDForInit, needTryGerAvatarFromServer);
//	}
//
//	/**
//	 * 尝试获取用户头像.
//	 *
//	 * @param destToLocal true表示尝试将获取到的bitmap设置到localAvatar上，否则设置到friendAvatar上
//	 * @param uid 要获取头像人员的uid
//	 */
//	private void tryToGetAvatar(final boolean destToLocal, String uid
//			, boolean needTryGerAvatarFromServer)
//	{
//		new ShowUserAvatar((Activity)context
//				, uid
//				, null
//				, needTryGerAvatarFromServer
//				, 139 , 139 // 此类中的头像用于聊天界面中的双方头像，大小参考：chatting_list_view_bluetooth_man.png
//				)
//		{
//			/**
//			 * 更新Bitmap对象.
//			 * <p>默认实现是将Bitmap对象更新到UI组件上（如果UI组件存在的话）.
//			 */
//			protected void avatarUpdate(Bitmap cachedAvatar)
//			{
//				if(destToLocal)
//				{
//					localAvatarBitmap = cachedAvatar;
//					localAvatarGot(localAvatarBitmap);
//				}
//				else
//				{
//					friendAvatarBitmap = cachedAvatar;
//					friendAvatarGot(friendAvatarBitmap);
//				}
//			}
//		}.showCahedAvatar();
//	}
//
//	/**
//	 * 本地用户头像加载成功后调用的方法。
//	 *
//	 * @param localAvatarBitmap
//	 */
//	protected void localAvatarGot(Bitmap localAvatarBitmap)
//	{
//		// default do nothing
//	}
//
//	/**
//	 * 好友头像加载成功后调用的方法。
//	 *
//	 * @param friendAvatarBitmap
//	 */
//	protected void friendAvatarGot(Bitmap friendAvatarBitmap)
//	{
//		// default do nothing
//	}
//
//	/**
//	 * 保证头像Bitmap对象被释放！
//	 */
//	public void releaseAvatarBitmap()
//	{
//		if(localAvatarBitmap != null && !localAvatarBitmap.isRecycled())
//			localAvatarBitmap.recycle();
//		if(friendAvatarBitmap != null && !friendAvatarBitmap.isRecycled())
//			friendAvatarBitmap.recycle();
//	}
//
//	public Bitmap getLocalAvatarBitmap()
//	{
//		return localAvatarBitmap;
//	}
//	public Bitmap getFriendAvatarBitmap()
//	{
//		return friendAvatarBitmap;
//	}
//}
